package com.szrt.java.day20161227.demo01;

import java.util.Arrays;

import org.junit.Test;

/**
 * 当定义一个数组 就必须现实或者隐式的定义数组的长度
 * @author zsrt
 *
 */

public class ArrayDemo {

	@Test
	public void demo01(){
		//静态的初始化
		int[] ages = new int[]{23,18,16};
		
		//简化的声明
		int[] score = {85,90,95};
		System.out.println(ages[0]);
		
		//直接打印数组
		System.out.println(Arrays.toString(score));
	}
	
	@Test
	public void demo02(){
		
		//数组的空间是连续的。动态的初始化
		//定义出来的变量ages保持在栈空间中 new 出来的变量保存在堆空间中
		int[] ages = new int[3];
		
		//使用下标给元素赋值
		ages[0] = 23;
		ages[1] = 18;
		ages[2] = 16;
		
		System.out.println(ages[2]);
		
		int len = ages.length;
		
		System.out.println(len);
	}
	
	@Test
	public void demo03(){
		
		//数组的空间是连续的。动态的初始化
		//定义出来的变量ages保持在栈空间中 new 出来的变量保存在堆空间中
		int[] ages = new int[3];
		
		//使用下标给元素赋值
		ages[0] = 23;
		ages[1] = 18;
		ages[2] = 16;
		
		ages[1] = 19;
		
		for(int index =0;index<ages.length;index++){
			System.out.println(ages[index]);
		}
	}
	
	/**
	 * 高级for循环   要求熟练掌握
	 * 
	 * 优点：可以简化开发
	 * 缺点：
	 * 
	 * for(变量的类型 变量的名称：数组的名称){
	 * 
	 * }
	 * 
	 */
	@Test
	public void demo04(){
		
		int[] ages = new int[3];
		
		//使用下标给元素赋值
		ages[0] = 23;
		ages[1] = 18;
		ages[2] = 16;
		
		System.out.println("一般的循环===================");
		for(int index =0;index<ages.length;index++){
			int value = ages[index];
			System.out.println(value);
		}
		
		System.out.println("高级的循环===================");
		for(int value : ages){
			System.out.println(value);
		}
		
	}
	
}
